package com.doit.day02


object _02_class类 {
  def main(args: Array[String]): Unit = {
    val zss: Dog = new Dog(name = "zss", age = 18,  gender = "male")
    println(zss.id)
  }
}


//马大爷认为 get方法，set 方法都是死的方法  我给你写
//如果成员变量是val修饰的，那么我只给你写get方法，如果是var修饰的，给你写get和set方法 只不过，名字不一样 id id=
//@BeanProperty  会给你生成get和set方法
//让构造函数和类交织在一起
//如果你在类后面(主构造器后面直接写参数的时候，加上了val和var的话，那么这里面的参数全部都是成员变量)
/**
 *构造函数和类交织在一起 的方式，定义一个类
 *
 * 在用空参定义一个类，注意多写几个辅助构造器
 */
class Dog(val id:Int = 19,val name:String,val age:Int,val gender:String /*,val add: Int => Int = (a:Int)=>{a+10}*/){
  val address:String = "北京"
/*  @BeanProperty
  var id:Int = 10
  @BeanProperty
  var name:String = "zss"
  @BeanProperty
  var age:Int = 18
  @BeanProperty
  var gender:String = "male"
//  val add = (a:Int,b:Int)=>{a+b}

/*  def sayHello()={
    println("你好啊！！！")
  }*/
  //没有办法写构造方法  ==> 辅助构造器
  //辅助构造器的第一行，必须调用主构造器，或者其他辅助构造器
/*
  def this(name:String ,age:Int)={
    this()
    this.name = name
    this.age = age
  }
*/

  def this(id:Int,name:String,age:Int,gender:String){
    this()
    this.name = name
    this.age = age
    this.id = id
    this.gender = gender
  }*/
}

//object
